/**
 * 异步请求
 * @description 每次只请求一个 URL，请求完成后再请求
 * @date 2020-08-18
 * @param {Array} arr 数组
 * @param {Object} options={method:"GET"}
 * @param {function} optionsHook=null
 * @returns {any}
 */
async function requestAsync(arr, options = { method: "GET" }, optionsHook = null) {
  window.result = window.result || [];
  if (result.length) {
    console.log("window.result 不为空");
    window.result = [];
  }

  for (let i = 0; i < arr.length; i++) {
    let res2 = await pro(arr[i], options, i, optionsHook);
    console.log(new Date().getTime());
    window.result.push(res2);
  }
  console.log("全部请求完成  结果在result中");
}
/**
 * 请求封装
 * @date 2020-08-18
 * @description 在此函数中稍有修改
 * @param {String} url
 * @param {Object} options
 * @param {Number} index
 * @returns {Promise}
 */
function request(url, options, index, optionsHook) {
  return new Promise((resolve, reject) => {
    // 请求参数钩子 当请求参数需要修改时触发
    if (optionsHook && typeof optionsHook === "function") {
      optionsHook(url, options, index);
    }
    fetch(url, options)
      .then((res) => res.text())
      .then((res) => resolve(res))
      .catch((err) => reject(err));
  });
}
